package com.qianke.common;

public class HttpClientUtils {
//    public static final Logger logger = LoggerFactory.getLogger(HttpClientUtils.class);
//
//    public static final int DEFAULT_MAX_PER_ROUTE = 50; // 每个路由的默认最大连接数
//    public static final int DEFAULT_MAX_TOTAL = 100; // 连接池里的最大连接数
//
//
//    public static final String DEFAULT_ENCODING = "UTF-8";
//
//    public static HttpClient httpClient;
//
//    static {
////        PoolingClientConnectionManager poolingClientConnectionManager = new PoolingClientConnectionManager();
////        poolingClientConnectionManager.setDefaultMaxPerRoute(DEFAULT_MAX_PER_ROUTE);
////        poolingClientConnectionManager.setMaxTotal(DEFAULT_MAX_TOTAL);
////        httpClient = new DefaultHttpClient(poolingClientConnectionManager);
//    }
//
//    /**
//     * 带参数的Http-Post请求
//     */
//    public static String post(String remoteUrl, Map<String, String> params, String encodeType) {
//
//        if (StringUtils.isEmpty(remoteUrl)) {
//            throw new RuntimeException("post remoteUrl not null !");
//        }
//        String result = null;
//        try {
//            HttpPost httpPost = new HttpPost(remoteUrl);
//            List<NameValuePair> nameValuePairList = null;
//            if (params != null && params.size() > 0) {
//                nameValuePairList = new ArrayList<>();
//                for (Iterator<String> itr = params.keySet().iterator(); itr.hasNext(); ) {
//                    String key = itr.next();
//                    String value = params.get(key);
//                    nameValuePairList.add(new BasicNameValuePair(key, value));
//                }
//                httpPost.setEntity(new UrlEncodedFormEntity(nameValuePairList, encodeType));
//            }
//
//            HttpClient httpClient = getHttpClient();
//            HttpResponse response = httpClient.execute(httpPost);
//            result = EntityUtils.toString(response.getEntity());
//        } catch (Exception e) {
//            logger.error("httpclient post error , e {}", e);
//            throw new RuntimeException("connect server error!");
//        }
//        return result;
//    }
//
//    /**
//     * 无参数的Http-Post请求
//     */
//    public static String post(String remoteUrl) {
//        return post(remoteUrl, null);
//    }
//
//    public static String post(String remoteUrl, Map<String, String> params) {
//        return post(remoteUrl, params, DEFAULT_ENCODING);
//    }
//
//    /**
//     * wx用
//     */
//    public static String postRequestBody(String remoteUrl, String requestBody) {
//
//        if (StringUtils.isEmpty(remoteUrl)) {
//            throw new RuntimeException("post remoteUrl not null !");
//        }
//        String result = null;
//        try {
//            HttpPost httpPost = new HttpPost(remoteUrl);
//            StringEntity stringEntity = new StringEntity(requestBody, Charsets.UTF_8);//解决中文乱码问题
//            stringEntity.setContentEncoding("UTF-8");
//            stringEntity.setContentType("application/json");
//            httpPost.setEntity(stringEntity);
//            HttpClient httpClient = getHttpClient();
//            HttpResponse response = httpClient.execute(httpPost);
//            result = EntityUtils.toString(response.getEntity(), DEFAULT_ENCODING);
//        } catch (Exception e) {
//            logger.error("httpclient post error , e {}", e);
//            throw new RuntimeException("connect server error!");
//        }
//        return result;
//    }
//
//    /**
//     * 无参数或remoteUrl已带参数的Http-Post请求
//     */
//    public static String get(String url) {
//        return get(url, null);
//    }
//
//    public static String get(String url, Map<String, String> headers) {
//        String result = "";
//        HttpGet httpGet = new HttpGet(url);
//
//        if (headers != null && headers.size() > 0) {
//            for (Map.Entry<String, String> entry : headers.entrySet()) {
//                httpGet.setHeader(entry.getKey(), entry.getValue());
//            }
//        }
//
//        try {
//            HttpResponse response = getHttpClient().execute(httpGet);
//            result = EntityUtils.toString(response.getEntity());
//        } catch (IOException e) {
//            logger.error("execute get error , url : {}, exception : {}", url, e);
//        } finally {
//            httpGet.releaseConnection();
//        }
//        return result;
//    }
//
//
//    public static String jsonGet(String url) {
//        String result = "";
//        HttpGet httpGet = new HttpGet(url);
//        httpGet.setHeader("X-Requested-With", "XMLHttpRequest");
//        try {
//            HttpResponse response = getHttpClient().execute(httpGet);
//            result = EntityUtils.toString(response.getEntity());
//        } catch (IOException e) {
//            logger.error("execute get error , url : {}, exception : {}", url, e);
//        } finally {
//            httpGet.releaseConnection();
//        }
//        return result;
//    }
//
//    public static InputStream downLoadFile(String url) {
//        InputStream input = null;
//        HttpGet httpGet = new HttpGet(url);
//        try {
//            HttpResponse response = getHttpClient().execute(httpGet);
//            input = response.getEntity().getContent();
//        } catch (IOException e) {
//            logger.error("execute get error , url : {}, exception : {}", url, e);
//        } finally {
//            httpGet.releaseConnection();
//        }
//        return input;
//    }
//
//    public static HttpClient getHttpClient() {
//        return httpClient;
//    }
//
//    /**
//     * 从cookie中获取相应的token
//     *
//     * @param tokenName
//     * @return
//     */
//    public static String getTokenFromCookie(String tokenName) {
//        String tokenString = RequestContext.getRequest().getHeader("cookie");
//        if (tokenString == null) {
//            return null;
//        }
//        String[] tokens = tokenString.split(";");
//        if (tokens == null || tokens.length <= 0) {
//            return null;
//        }
//        for (String token : tokens) {
//            String[] tokenValue = token.split("=");
//            if (tokenValue.length == 2) {
//                if (tokenValue[0].trim().equals(tokenName)) {
//                    return tokenValue[1];
//                }
//            }
//        }
//        return null;
//    }
//
//
//    public static boolean isEmpty(String value) {
//        return value == null || "".equals(value);
//    }
//
//    public static long toLong(String value, long def) {
//        if (isEmpty(value)) {
//            return def;
//        }
//
//        try {
//            return Long.valueOf(value);
//        } catch (NumberFormatException e) {
//            e.printStackTrace();
//            return def;
//        }
//    }
//
//    public static int toInt(String value, int def) {
//        if (isEmpty(value)) {
//            return def;
//        }
//        try {
//            return Integer.valueOf(value);
//        } catch (NumberFormatException e) {
//            e.printStackTrace();
//            return def;
//        }
//    }
}
